package studiodiva.portfolio.client.model.titles;

import static studiodiva.portfolio.client.lib.lang.Lang.event;

import studiodiva.portfolio.client.lib.even.Event;
import studiodiva.portfolio.client.lib.even.HasEvents;
import studiodiva.portfolio.client.model.HasApplication;
import studiodiva.portfolio.client.model.titles.Titles.TitleType;

public interface Title extends Iterable<Page>, HasEvents, HasApplication {
  public static final Event<Page> ON_PAGE_CHANGE = event();

  Page getPage();

  int getCurrentIndex();

  Page getPage(int index);

  int getPageCount();

  TitleType getType();

  void showPage(int index);

  void showPage(String id);
}
